package com.zhang.aloneway_springboot.controller;

import com.zhang.aloneway_springboot.pojo.Book;
import com.zhang.aloneway_springboot.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/api")
public class LibraryController {

    @Autowired
    private BookService bookService;

    @CrossOrigin //加这个注解，是为了解决前端跨域访问后端服务器的 跨域问题
    @GetMapping("/books")
    public List<Book> doList(){
        //通过bookService对象 查询书的list (即地址栏输入localhost:8080/books时展示books集合)
        return bookService.doList();
    }

    @CrossOrigin //加这个注解，是为了解决前端跨域访问后端服务器的 跨域问题
    @PostMapping("/books")
    public Book addOrUpdate(@RequestBody Book book){
        //通过传入一个book对象，进行add或者update
        bookService.addOrUpdate(book);
        return book;
    }

    @CrossOrigin //加这个注解，是为了解决前端跨域访问后端服务器的 跨域问题
    @RequestMapping("/delete")
    public void deleteBook(@RequestBody Book book){
        //根据book的id，删除此条book
        Integer id = book.getId();
        bookService.deleteBook(id);
    }

    @CrossOrigin //加这个注解，是为了解决前端跨域访问后端服务器的 跨域问题
    //用到了restful风格
    @RequestMapping("/categories/{cid}/books")
    public List<Book> listByCategory(@PathVariable Integer cid){
        if(cid != 0){//如果有这个cid，那么就根据这个cid去查询
            return bookService.listByCategory(cid);
        }else {
            return doList();//如果没有这个cid，那么就把所有的书都查出来。
        }
    }

}
